package com.yvon.service.demo.spring.beans.factory;

/**
 * @author Yvon
 * @since 2022/12/16
 */
public interface FactoryBean<T> {

    /**
     * 获取对象
     *
     * @return {@link T}
     * @throws Exception 异常
     */
    T getObject() throws Exception;

    /**
     * 获取对象类型
     *
     * @return {@link Class}<{@link ?}>
     */
    Class<?> getObjectType();

    /**
     * 是否是单例对象
     * 如果是单例对象依然会被放到内存中
     *
     * @return boolean
     */
    boolean isSingleton();
}
